perm filename MACRO.SAI[SAI,LES] blob
sn#791587 filedate 1985-03-28 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 Useful Sail macros
C00007 ENDMK
C⊗;
COMMENT Useful Sail macros;
require "[]<>" delimiters;
define !=[Comment];
define TAB=[(""&'11)],LF=[(""&'12)],VT=[(""&'13)],FF=[(""&'14)],CR=[(""&'15)],
ALT=[(""&'175)],DEL=[(""&'177)],↓=[(CR&LF)],
thru=[step 1 until],
ln=[length],
proc=[simple procedure],
ttyuuo=['51000000000],
exit=[quick_code calli '12 end],
isalpha(c)=[("a"≤c≤"z" ∨ "A"≤c≤"Z")],
isnum(c)=[("0"≤c≤"9")],
alphabet=["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"],
digits=["0123456789"],
inlines=[input(inch,inlf)],
informs=[input(inch,inff)],
inprints=[input(inch,inprt)],
inwhiter=[input(inch,inwht)],
towhites(s)=[scan(s,inprt,brk)],
toprintr(s)=[scan(s,inwht,brk)];
define show(a)=[print("a = ",a,↓)],hack(a)=[print(a)];
define symbrk=0; ! for generating symbols;
define BREAK_TABLE(table,term,omit,modes)=[
redefine symbrk=symbrk+1, zzz=[break]&cvs(symbrk);
simple procedure zzz; setbreak(table←getbreak,term,omit,modes);
require zzz initialization;
];
define break(id,term,omit,modes)= [
integer id;
break_table(id,term,omit,modes);
];
define scnbrk(id,term,omit,modes)= [
redefine qqq=[tableno]&cvs(symbrk);
integer qqq;
define id(s)=[scan(s,]&cvms(qqq)&[,brk)];
break_table(qqq,term,omit,modes);
];